bevy-inspector-egui
Examples can be found at ./crates/bevy-inspector-egui/examples
.
This crate contains
- general purpose machinery for displaying
Reflect
values in reflect_inspector, - a way of associating arbitrary options with fields and enum variants in inspector_options
- utility functions for displaying bevy resource, entities and assets in bevy_inspector
- some drop-in plugins in quick to get you started without any code necessary.
The changelog can be found at docs/CHANGELOG.md
.
Use case 1: Quick plugins
These plugins can be easily added to your app, but don't allow for customization of the presentation and content.
WorldInspectorPlugin
Displays the world's entities, resources and assets.
use *;
use WorldInspectorPlugin;
ResourceInspectorPlugin
Display a single resource in a window.
use *;
use *;
use ResourceInspectorPlugin;
// `InspectorOptions` are completely optional
There is also the StateInspectorPlugin
and the AssetInspectorPlugin
.
Use case 2: Manual UI
The quick plugins don't allow customization of the egui window or its content, but you can easily build your own UI:
use *;
use EguiPlugin;
use *;
use TypeId;
Pair this with a crate like egui_dock
and you have your own editor in less than 100 lines: examples/egui_dock.rs
.
Cargo features
highlight_changes
- highlight changed values every frame. Ideally this should be runtime-configurable, but it was implemented like this as a stopgap solution. If you'd like to configure this at runtime, please open an issue to let me know it's more of a priority.bevy_pbr
(default): register default options forbevy_pbr
types. You should disable this if you don't usebevy_pbr
to reduce the dependency footprint.
FAQ
Q: How do I change the names of the entities in the world inspector?
A: You can insert the Name
component.
Q: What if I just want to display a single value without passing in the whole &mut World
?
A: You can use reflect_inspector::ui_for_value
. Note that displaying things like Handle<StandardMaterial>
won't be able to display the asset's value.
Q: Can I change how exactly my type is displayed?
A: Implement InspectorPrimitive
and call app.register_type_data::<T, InspectorEguiImpl>
.
Bevy support table
bevy | bevy-inspector-egui |
---|---|
0.13 | 0.23 |
0.12 | 0.22 |
0.12 | 0.21 |
0.11 | 0.19-0.20 |
0.10 | 0.18 |
0.9 | 0.14-0.17 |
0.8 | 0.12-0.13 |
0.7 | 0.10-0.11 |
0.6 | 0.9 |
0.6 | 0.8 |
0.6 | 0.7 |
0.5 | 0.5-0.6 |
0.5 | 0.4 |
0.4 | 0.1-0.3 |